<?php
namespace App\Services\User;

use App\Services\User\App\AppLogic;

class App  {
    // 增加一个app应用
    public function add($data): array
    {
        $data = init_array($data,['name'=>' ', 'allow_role_ids'=>'']);

        return (new AppLogic())->add($data);
    }
    // 禁用一个应用
    public function stop($data): array
    {
        $data = init_array($data,['id'=>'', 'name'=>'', 'app_key'=>'']);

        return (new AppLogic())->stop($data);
    }
    // 查看所有应用
    public function list($data): array
    {
        $data = init_array($data,['page' => 1, 'list_rows' => 15]);

        return (new AppLogic())->list($data);

    }
    // 查看某一应用的信息
    public function find($data): array
    {
        return (new AppLogic())->find($data);
    }
    // 编辑某一应用的信息
    public function edit($data): array
    {
        $data = init_array($data,['id'=>'0','name'=>'', 'allow_role_ids'=>'']);

        return (new AppLogic())->edit($data);
    }
    // 为一个应用增加可以访问的角色
    public function addRoles($data): array
    {
        $data = init_array($data,['id'=>'','name'=>'', 'allow_role_ids'=>'']);
        if (array_eq($data, '', ['id', 'name'])) {
            return verify_err(null, '至少要传一个参数:id,name');
        } else if ($data['allow_role_ids'] === '') {
            return verify_err(null, 'allow_role_ids不可为空');
        }
        return (new AppLogic())->addRoles($data);
    }
    // 为一个应用增加可以访问的角色
    public function removeRoles($data): array
    {
        $data = init_array($data,['id'=>'','name'=>'', 'allow_role_ids'=>'']);

        return (new AppLogic())->removeRoles($data);
    }
    // 启用某一应用的信息
    public function start($data): array
    {
        $data = init_array($data,['id'=>'', 'name'=>'', 'app_key'=>'']);

        return (new AppLogic())->start($data);
    }
    // 查看所有应用不分页
    public function all(): array
    {
        return (new AppLogic())->all();
        return $this->stepRun([], 'all', 'all');
    }
    // 根据app_ids获取app_name
    public function getAppNameByIds($data): array
    {
        $data = init_array($data,['app_ids'=>'']);

        return (new AppLogic())->getAppNameByIds($data);
    }
}